Many people carry mobile devices equipped with audio and/or visual sensors such as cameras and microphones. Further, many homes and businesses have other sensors installed, such as weather stations, security cameras, parking counters, motion sensors, security systems, pollution sensors, etc. Currently, these are operated as standalone systems, serving the owner or operator of that system (e.g., a cell-phone user may take a picture and send it to a friend), or the clients of the owner/operator (e.g., shoppers at a mall may be benefited by the mall's parking sensors). In some cases, limited sharing of data is available, such as uploading of collected weather station data or images to Internet-based sharing sites.
A significant number of potential applications can be designed if the swarm of the available sensors deployed or carried by multiple owners or operators is used as a shared system, and applications can be written to access data from such sensors. However, there is a problem in developing applications that can access, control, and program the behavior of these multiple sensors since the devices and/or systems that contain the sensors are operated or controlled by disparate entities. The entities may have distinct uses for the sensors, a varying willingness to share owned resources, different privacy sensitivities with regard to sharing sensor data, and different resource availabilities in terms of network connectivity, battery energy, and storage capacity. Additionally, the computational resources and sensing capabilities of the disparate systems may be different. Stiff further, for the sensing devices carried by humans such as cell phones, programming the devices to carry out a sensing task such as taking a picture of a desired object may require human intervention, and programming this from a remote application is a challenge. Similar problems may arise in any system that attempts to program a distributed system that comprises computing elements owned and operated by multiple different entities that use systems for specific purposes.